package com.xd.core.business.service;


import com.baomidou.mybatisplus.extension.service.IService;
import com.github.pagehelper.Page;
import com.xd.core.business.dto.IncomingInfoDto;
import com.xd.core.business.dto.IncomingInfoEnableDto;
import com.xd.core.business.dto.IncomingQuery;
import com.xd.core.business.entity.IncomingInfo;
import com.xd.core.business.vo.*;
import com.xd.core.company.dto.CompanyQuery;
import com.xd.core.company.dto.HomeQueryDto;
import com.xd.core.company.vo.IncomingPreview;
import com.xd.core.debt.dto.Review;

import java.io.IOException;
import java.util.List;

/**
 * <p>
 * 进件信息表 服务类
 * </p>
 *
 * @author ZX
 * @since 2025-02-23
 */
public interface IIncomingInfoService extends IService<IncomingInfo> {
    /**
     * 验证车贷字段长度
     * @param info 进件信息DTO
     */
    void validateCarLoanFields(IncomingInfoDto info);

    void addIncoming(IncomingInfoDto info);

    void threeElementAuthentication(String idCard, String name, String phone);

    IncomingInfoVo getDetail(Integer id);

    List<IncomingInfoPageVo> getIncomingListForExport(IncomingQuery query);

    Page<IncomingInfoPageVo> incomingList(IncomingQuery query);

    void updateStatus(IncomingInfoEnableDto incomingInfoEnableDto);

    void updateIncoming(IncomingInfoDto infoDto);

    void exportIncomingInfoList(IncomingQuery query, Integer id);

    MortgageVo getMortgageDetail(Integer id);

    IncomingPreview getIncomingPreview(HomeQueryDto query);

    void platformReview(Review review);

    IncomingInfoVo getReIncoming(Integer id) throws IOException;

    String addSlipIncoming(IncomingInfoDto info);

    Page<InsuranceIncomingInfoPageVo> insuranceIncomingList(IncomingQuery query);

    void updateSlipIncoming(IncomingInfoDto info);

    InsuranceIncomingCreditInfo getSlipBusinessDetail(Integer incomingId);

    CreditInsuranceVo getSlipBusinessInsuranceDetail(Integer incomingId);
}
